#ifndef FS_API_H
#define FS_API_H


#include "typedef.h"



typedef struct _WFILE
{
	u8      dir_index;
	u32     dir_sect;
    u32 	org_clust;			// File start cluster
    u32 	curr_clust;			// Current cluster
    u32		curr_sect;			// Current sector
    u32		fptr;				// File R/W pointer
    u32		fsize;				// File size
} WFILE;



u8 f_Create(char _xdata * file_name , u8 file_type ,void _xdata *ret);
u8 get_available_clust(u32 _xdata * pre_clust,u32 _xdata * clust);
u8 write_fatbuf(u32 _xdata * clust,u32 _xdata *fat_data );
u16 f_write(u8 _xdata *w_buf,u16 w_len,WFILE _xdata *w_ptr);
void f_closefile(WFILE _xdata * w_ptr);
void f_changedir(DIR _xdata *dir);
u8 update_fatbuf(u32 _xdata sector);
u8 get_next_clust(u32  cur_clust,u32 _xdata * next_clust);
void f_w_seek(WFILE _xdata *w_ptr,u32 _xdata offset);

#endif